
const formidable = require('formidable')
const path = require('path')
const fs = require('fs');

//multer(文件的处理放在中间件了)
// const loadImg1 = (req, res) => {
//     console.log("-==================body", req.body);
//     console.log("================file", req.file);
//     res.send({
//         status: 200,
//         msg: '成功!',
//         imgUrl: `http://localhost:3006/img/${req.file.filename}`
//     })
// }

// 图片formidable（文件的处理放在内部）
const loadImg = (req, res) => {
    //说明不是formdata数据 而是application/www-form-urlencoded
    if (JSON.stringify(req.body) !== '{}') {
        console.log('application/www-form-urlencoded');
        return res.send({
            status: 200,
            msg: '成功！',
            body: req.body
        })
    }
    else { //如果是formdata数据类型
        console.log('formdata');
        var form = new formidable.IncomingForm();
        form.uploadDir = path.join(__dirname, '../coverImg') // 上传目录
        form.parse(req, function (error, fields, files) {
            if (error) return res.sendErr(error)
            // fields 除了图片外的信息
            // console.log("fields", fields);
            // files 图片信息
            // console.log("files", files);
            // console.log(JSON.stringify(files) !== '{}');
            if (JSON.stringify(files) !== '{}') {
                //文件重命名（保存文件）
                // let originalFilename = files.file.originalFilename  //文件原始的名称 如01.jpg
                let originalFilename = files['avatar123'].originalFilename  //文件原始的名称 如01.jpg
                let extName = path.extname(originalFilename)    //.jpg
                let baseName = path.basename(originalFilename, extName)  //o1
                let newName = baseName + '-' + Date.now() + extName;
                let oldPath = files['avatar123'].filepath
                fs.rename(oldPath, path.join(__dirname, '../coverImg', `${newName}`), (err) => {
                    if (err) {
                        console.log('重命名失败！');
                        return res.sendErr('上传失败(重命名失败！)')
                    }
                    //重命名成功了
                    return res.send({
                        status: 200,
                        msg: '成功!',
                        imgUrl: `http://localhost:3006/img/${newName}`
                    })
                })
            } else {
                //如果没发送文件的（也就是头像发送完了 这里得到头像的连接+其他数据 放入数据库）
                return res.send({
                    status: 200,
                    msg: '成功!',
                    fields: fields
                })
            }
        })
    }
}
module.exports = {
    loadImg
}